[Day10] 人魚、魚人和人類雖然是不同的類別,但是也可以好好地生活在一起!
今天要介紹的是 Ruby 裡的類別(Class)
這是一個 Ruby 語言裡相當重要的關鍵字
簡單來說,類別是拿來產生實體(Instance)的東西,實體就是昨天有介紹過的物件。
但這樣解釋其實不夠完整,想要弄懂 Ruby 裡的類別其實沒有這麼容易,類別的概念裡隱含著 Ruby 這門程式語言的設計哲學,以及有些我尚未掌握的概念,這是無法一蹴而就的,因此,我預計把它拆成幾個部分,用不同天的篇幅介紹:
好的,就先讓我們從頭開始來認識類別吧!
要了解 Ruby 的類別,龍哥是用烤盤和雞蛋糕來巧妙比喻類別與實體的關係。
不過,我今天想吃章魚燒:
看著看著好像餓了...
在 Ruby 裡,那個負責做出章魚燒的烤盤就是類別,一個個熱騰騰的章魚燒則是實體。
因此只要烤盤沒壞掉,而且原料足夠的話,每次做出來的應該都會是同樣好吃的章魚燒!(原則上啦,不然會被客訴啊!)
所以在定義一個類別時,可以設定產生新實體時要做什麼,或是在類別裡定義一些方法等等。
然後,一個個的實體就可以透過類別生出來囉!
接著,來看一下類別的定義吧!
類別的名稱必須要是常數,也就是第一個字元一定要大寫。
不過,並不是看到開頭大寫的就一定是類別,像是模組,也得用大寫常數命名,過幾天會介紹它,這裡先賣個關子。
實際來看 code 吧!
先定義一個 Cat
的類別:
class Cat
def walk(place)
puts "我想去 #{place}, 喵~"
end
end
然後用 Cat
類別來產生新的實體 miru
和 nini
miru = Cat.new
nini = Cat.new
(題外話,miru 和 nini 是我朋友家的兩隻貓,超級可愛!)
可以看到 miru
和 nini
都能呼叫 walk
方法:
這是因為他們都屬於 Cat
這個類別
miru.walk ("公園")
miru.walk("遊樂園")
# 印出:
我想去 公園 喵~
我想去 遊樂園 喵~
Ruby 類別的簡單介紹就先到這邊啦!
祝大家都能找到自己心目中的 All Blue!